package com.baiku.sanhos.mapper;

import com.baiku.sanhos.pojo.entity.Booking;
import com.baiku.sanhos.pojo.vo.BookingRegisterVO;
import com.baiku.sanhos.pojo.vo.BookingVO;
import com.baiku.sanhos.pojo.vo.RequestBookingVo;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author ruoLi
 */
@Repository
public interface BookingMapper extends BaseMapper<Booking> {
    /**
     * 获取最新的用户预约数据最多16条
     * @param username 用户账号
     * @param nickname 用户名字
     * @reamrk 一个用户一天最多预约两次，预约时间最多为八天
     * @return 用户预约的数据集合
     */
    List<BookingVO> listDataBooking(String username, String nickname);

    int getTotalBooking(String bookDoctorName, String nickname);

    List<RequestBookingVo> selectAll(int pageSize, int offset, String bookDoctorName, String nickname);

    void deleteByIds(List<Integer> ids);

    RequestBookingVo selectByIdBooking(Integer id);

    /**
     * 根据账号获取用户账号的预约数据
     * @param username 用户账号
     * @return 用户账号的预约数据集合
     */
    List<BookingRegisterVO> listBookingRegister(String username);

    void updateByIdStatus(Integer id);

    void updateById(Integer id);

    /**
     * 根据子用户就诊人id和预约状态查询的预约数据
     * @param id 子用户id
     * @param status 预约状态
     * @return 用户账号的预约数据集合
     */

    List<BookingRegisterVO> listBookingRegisterByIdAndStatus(String id,Integer status);
    /**
     * 根据账号和预约状态查询的预约数据
     * @param username 子用户id
     * @param status 预约状态
     * @return 用户账号的预约数据集合
     */
    List<BookingRegisterVO> listBookingRegisterByParentIdAndStatus(String username,Integer status);

    int getDoctorTotalBooking(String bookDoctorName, String nickname, String doctorNo);

    List<RequestBookingVo> selectDoctorAllUser(int pageSize, int offset, String bookDoctorName, String nickname, String doctorNo);
}
